<template>
  <div class="import">
    <!-- beforeUpload:上传前的回调函数，上传前限制上传文件大小类型
                        一定要return一个boolean值
                        如果不定义beforeUpload它当你允许上传
                        如果写了beforeUpload一定要return一个boolean值
         onSuccess:上传成功，拿到数据
     -->
    <UploadExcel :on-success="onSuccess" :before-upload="beforeUpload" />
  </div>
</template>
<script>
import UploadExcel from '@/components/lib/uploadExcel/index.vue'
import { sysUserBatch } from '@/api/employees'
import moment from 'moment'
export default {
  components: {
    UploadExcel
  },
  methods: {
    // 上传成功回调函数
    async onSuccess(res) {
      // 数据转换：中文key转换成英文key
      const newArr = res.results.map((item) => {
        return {
          timeOfEntry: this.changeExcelTime(item['入职日期']),
          username: item['姓名'],
          workNumber: item['工号'],
          mobile: item['手机号'],
          correctionTime: this.changeExcelTime(item['转正日期'])
        }
      })

      await sysUserBatch(newArr)
      this.$message.success('导入成功')
      this.$router.push('/employees')
      // this.$router.go(-1)
      // this.$router.back()
    },
    /*
    js时间戳:1970年到现的毫秒数
    excel时间：1900年到现在的天数，它是从1开始计算，时区差：8小时
    */
    // excel时间转换成js时间
    changeExcelTime(num = 43535) {
      const t = new Date((num - 1) * 24 * 60 * 60 * 1000 - 8 * 60 * 60 * 1000)
      t.setYear(t.getFullYear() - 70)
      return moment(t).format('YYYY-MM-DD')
    },
    beforeUpload(res) {
      const limitSize = res.size / 1024 / 1024 < 1
      if (!limitSize) {
        this.$message.error('请上传小于1Mb的excel')
      }
      const limitType = /\.xlsx$/.test(res.name)
      if (!limitType) {
        this.$message.error('请上传xlsx的excel')
      }
      console.log(res)
      return limitSize && limitType
    }
  }
}
</script>
<style lang="scss" scoped>
.import {
  padding: 50px 15px 0px;
}
</style>
